#ifndef CCARTA_H
#define CCARTA_H

#include <QObject>

class CCarta : public QObject
{
    Q_OBJECT
    Q_ENUMS(E_Status_Carta)

    Q_PROPERTY(QString carta READ getCarta WRITE setCarta NOTIFY cartaChanged)
    Q_PROPERTY(QString naipe READ getNaipe WRITE setNaipe NOTIFY cartaChanged)
    Q_PROPERTY(int statusCarta READ getStatusCarta WRITE setStatusCarta NOTIFY cartaChanged)

public:
    enum E_Status_Carta { E_Status_Descartada  = 0x00000001,
                          E_Status_Jogada      = 0x00000002,
                          E_Status_Selecionada = 0x00000004,
                          E_Status_NoBaralho   = 0x00000008,
                          E_Status_ForaBaralho = 0x00000010};
    explicit CCarta(QObject *parent = 0);

    QString getCarta();
    QString getNaipe();

    void setCarta(const QString &carta);
    void setNaipe(const QString &naipe);

    int getStatusCarta();
    void setStatusCarta(E_Status_Carta status);
private:
    QString _carta, _naipe;
    E_Status_Carta _status;
signals:
    void cartaChanged();

public slots:

};

#endif // CCARTA_H
